#ifndef _ISP_REG_H_
#define _ISP_REG_H_

#include "reg_fields.h"
#include "reg_blocks.h"
#include "vreg_blocks.h"
#include "reg_camcq.h"

#define ISP_INTR_NUM            (138)
#define CSIMAC0_INTR_NUM        (155)
#define CSIMAC1_INTR_NUM        (156)
#define ISP_TOP_PHY_REG_BASE    (0x0A000000)
#define DRAM_PHY_BASE           (0x100000000)
#define ISP_BLK_REGS_BITW       (12)
#define ISP_BLK_ID_BITW         (8)
#define ISP_PRERAW_INST_NUM     (2)

#define VREG_SIZE               (sizeof(struct VREG_RESV))
#define ADMA_DESC_SIZE          (sizeof(struct ISPCQ_ADMA_DESC_T))

/* ISP REG FIELD DEFINE */

/* ISP BLOCK ADDR OFFSET DEFINE */
#define ISP_BLK_BA_PRERAW0         (0x00000000)
#define ISP_BLK_BA_CSIBDG0         (0x00001000)
#define ISP_BLK_BA_CROP0           (0x00002000)
#define ISP_BLK_BA_CROP1           (0x00003000)
#define ISP_BLK_BA_BLC0            (0x00004000)
#define ISP_BLK_BA_BLC1            (0x00005000)
#define ISP_BLK_BA_LSCR0           (0x00006000)
#define ISP_BLK_BA_LSCR1           (0x00007000)
#define ISP_BLK_BA_AEHIST0         (0x00008000)
#define ISP_BLK_BA_AEHIST1         (0x00009000)
#define ISP_BLK_BA_AWB0            (0x0000A000)
#define ISP_BLK_BA_AWB1            (0x0000B000)
#define ISP_BLK_BA_AF              (0x0000C000)
#define ISP_BLK_BA_AF_GAMMA        (0x0000C080)
#define ISP_BLK_BA_GMS             (0x0000D000)
#define ISP_BLK_BA_WBG0            (0x0000E000)
#define ISP_BLK_BA_WBG1            (0x0000F000)
#define ISP_BLK_BA_LMP0            (0x00010000)
#define ISP_BLK_BA_LMP1            (0x00010800)
#define ISP_BLK_BA_RGBMAP0         (0x00011000)
#define ISP_BLK_BA_RGBMAP1         (0x00011800)
#define ISP_BLK_BA_PRE0_PCHK       (0x00012000)
#define ISP_BLK_BA_PRERAW1_R1      (0x00020000)
#define ISP_BLK_BA_CSIBDG1_R1      (0x00021000)
#define ISP_BLK_BA_CROP0_R1        (0x00022000)
#define ISP_BLK_BA_CROP1_R1        (0x00023000)
#define ISP_BLK_BA_BLC0_R1         (0x00024000)
#define ISP_BLK_BA_BLC1_R1         (0x00025000)
#define ISP_BLK_BA_LSCR2_R1        (0x00026000)
#define ISP_BLK_BA_LSCR3_R1        (0x00027000)
#define ISP_BLK_BA_AEHIST0_R1      (0x00028000)
#define ISP_BLK_BA_AEHIST1_R1      (0x00029000)
#define ISP_BLK_BA_AWB0_R1         (0x0002A000)
#define ISP_BLK_BA_AWB1_R1         (0x0002B000)
#define ISP_BLK_BA_AF_R1           (0x0002C000)
#define ISP_BLK_BA_AF_GAMMA_R1     (0x0002C080)
#define ISP_BLK_BA_GMS_R1          (0x0002D000)
#define ISP_BLK_BA_WBG0_R1         (0x0002E000)
#define ISP_BLK_BA_WBG1_R1         (0x0002F000)
#define ISP_BLK_BA_LMP2_R1         (0x00018000)
#define ISP_BLK_BA_LMP3_R1         (0x00018800)
#define ISP_BLK_BA_RGBMAP2_R1      (0x00019000)
#define ISP_BLK_BA_RGBMAP3_R1      (0x00019800)
#define ISP_BLK_BA_PRE1_PCHK       (0x0001A000)
#define ISP_BLK_BA_RAWTOP          (0x00030000)
#define ISP_BLK_BA_BLC2            (0x00031000)
#define ISP_BLK_BA_BLC3            (0x00032000)
#define ISP_BLK_BA_DPC0            (0x00033000)
#define ISP_BLK_BA_DPC1            (0x00034000)
#define ISP_BLK_BA_WBG2            (0x00035000)
#define ISP_BLK_BA_WBG3            (0x00036000)
#define ISP_BLK_BA_LSCM0           (0x00037000)
#define ISP_BLK_BA_LSCM1           (0x00038000)
#define ISP_BLK_BA_AWB4            (0x00039000)
#define ISP_BLK_BA_HDRFUSION       (0x0003A000)
#define ISP_BLK_BA_HDRLTM          (0x0003B000)
#define ISP_BLK_BA_BNR             (0x0003C000)
#define ISP_BLK_BA_CROP2           (0x0003D000)
#define ISP_BLK_BA_CROP3           (0x0003E000)
#define ISP_BLK_BA_MANR            (0x0003F000)
#define ISP_BLK_BA_FPN0            (0x00040000)
#define ISP_BLK_BA_FPN1            (0x00041000)
#define ISP_BLK_BA_RAW_PCHK0       (0x00042000)
#define ISP_BLK_BA_RAW_PCHK1       (0x00043000)
#define ISP_BLK_BA_WBG4            (0x00044000)
#define ISP_BLK_BA_RGBTOP          (0x00050000)
#define ISP_BLK_BA_CFA             (0x00051000)
#define ISP_BLK_BA_CCM             (0x00052000)
#define ISP_BLK_BA_GAMMA           (0x00053000)
#define ISP_BLK_BA_HSV             (0x00054000)
#define ISP_BLK_BA_DHZ             (0x00055000)
#define ISP_BLK_BA_R2Y4            (0x00056000)
#define ISP_BLK_BA_RGBDITHER       (0x00057000)
#define ISP_BLK_BA_RGBEE           (0x00058000)
#define ISP_BLK_BA_RGB_PCHK0       (0x00059000)
#define ISP_BLK_BA_RGB_PCHK1       (0x0005A000)
#define ISP_BLK_BA_YUVTOP          (0x00060000)
#define ISP_BLK_BA_444422          (0x00061000)
#define ISP_BLK_BA_UVDITHER        (0x00061E00)
//#define ISP_BLK_BA_3DNR            (0x0A063000)
#define ISP_BLK_BA_YNR             (0x00064000)
#define ISP_BLK_BA_CNR             (0x00065000)
#define ISP_BLK_BA_EE              (0x00066000)
#define ISP_BLK_BA_YCURVE          (0x00067000)
#define ISP_BLK_BA_CROP4           (0x00069000)
#define ISP_BLK_BA_CROP5           (0x0006A000)
#define ISP_BLK_BA_CROP6           (0x0006B000)
#define ISP_BLK_BA_DCI             (0x0006C000)
#define ISP_BLK_BA_YUV_PCHK0       (0x0006D000)
#define ISP_BLK_BA_YUV_PCHK1       (0x0006E000)
#define ISP_BLK_BA_ISPTOP          (0x00070000)
#define ISP_BLK_BA_DMA0            (0x00001100)
#define ISP_BLK_BA_DMA1            (0x00001200)
#define ISP_BLK_BA_DMA2            (0x00001300)
#define ISP_BLK_BA_DMA3            (0x00069100)
#define ISP_BLK_BA_DMA4            (0x0006A100)
#define ISP_BLK_BA_DMA5            (0x0006B100)
#define ISP_BLK_BA_DMA6            (0x0003D100)
#define ISP_BLK_BA_DMA7            (0x0003E100)
#define ISP_BLK_BA_DMA8            (0x00001400)
#define ISP_BLK_BA_DMA9            (0x00010100)
#define ISP_BLK_BA_DMA10           (0x00037100)
#define ISP_BLK_BA_DMA11           (0x00038100)
#define ISP_BLK_BA_DMA12           (0x0003B200)
#define ISP_BLK_BA_DMA13           (0x0003B300)
#define ISP_BLK_BA_DMA14           (0x00010900)
#define ISP_BLK_BA_DMA15           (0x00011100)
#define ISP_BLK_BA_DMA16           (0x00011900)
#define ISP_BLK_BA_DMA17           (0x0000C100)
#define ISP_BLK_BA_DMA18           (0x0002C100)
#define ISP_BLK_BA_DMA19           (0x0003F800)
#define ISP_BLK_BA_DMA20           (0x0003F900)
#define ISP_BLK_BA_DMA21           (0x0003FA00)
#define ISP_BLK_BA_DMA22           (0x0003FB00)
#define ISP_BLK_BA_DMA23           (0x0003FC00)
#define ISP_BLK_BA_DMA24           (0x0003FE00)
#define ISP_BLK_BA_DMA25           (0x00061800)
#define ISP_BLK_BA_DMA26           (0x00061900)
#define ISP_BLK_BA_DMA27           (0x00061B00)
#define ISP_BLK_BA_DMA28           (0x00061C00)
#define ISP_BLK_BA_DMA29           (0x00018100)
#define ISP_BLK_BA_DMA30           (0x00018900)
#define ISP_BLK_BA_DMA31           (0x00019100)
#define ISP_BLK_BA_DMA32           (0x00019900)
#define ISP_BLK_BA_DMA33           (0x00008100)
#define ISP_BLK_BA_DMA34           (0x00008180)
#define ISP_BLK_BA_DMA35           (0x00008080)
#define ISP_BLK_BA_DMA36           (0x0006C080)
#define ISP_BLK_BA_DMA37           (0x00009100)
#define ISP_BLK_BA_DMA38           (0x00009080)
#define ISP_BLK_BA_DMA39           (0x0000A100)
#define ISP_BLK_BA_DMA40           (0x0000B100)
#define ISP_BLK_BA_DMA41           (0x0000D100)
#define ISP_BLK_BA_DMA42           (0x00028100)
#define ISP_BLK_BA_DMA43           (0x00028180)
#define ISP_BLK_BA_DMA44           (0x00028080)
#define ISP_BLK_BA_DMA45           (0x00039100)
#define ISP_BLK_BA_DMA46           (0x00029100)
#define ISP_BLK_BA_DMA47           (0x00029080)
#define ISP_BLK_BA_DMA48           (0x0002A100)
#define ISP_BLK_BA_DMA49           (0x0002B100)
#define ISP_BLK_BA_DMA50           (0x0002D100)
#define ISP_BLK_BA_DMA51           (0x00001500)
#define ISP_BLK_BA_DMA52           (0x00001600)
#define ISP_BLK_BA_DMA53           (0x00021100)
#define ISP_BLK_BA_DMA54           (0x00021200)
#define ISP_BLK_BA_DMA55           (0x00021300)
#define ISP_BLK_BA_DMA56           (0x00021400)
#define ISP_BLK_BA_DMA57           (0x00021500)
#define ISP_BLK_BA_DMA58           (0x00021600)
#define ISP_BLK_BA_DMA59           (0x00061A00)
#define ISP_BLK_BA_DMA60           (0x00061D00)
#define ISP_BLK_BA_DMA61           (0x00061F00)


#define ISP_BLK_BA_CMDQ1           (0x0007F000)
#define ISP_BLK_BA_CMDQ2           (0x0007F400)
#define ISP_BLK_BA_CMDQ3           (0x0007F800)


#define MAP_ISP_BLOCK_ID(_ba)   (((_ba) >> ISP_BLK_REGS_BITW) \
				& ((1 << ISP_BLK_ID_BITW) - 1))

enum ISP_BLK_ID_T {
	ISP_BLK_ID_PRERAW0      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_PRERAW0),
	ISP_BLK_ID_CSIBDG0      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CSIBDG0),
	ISP_BLK_ID_CROP0        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP0),
	ISP_BLK_ID_CROP1        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP1),
	ISP_BLK_ID_BLC0         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_BLC0),
	ISP_BLK_ID_BLC1         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_BLC1),
	ISP_BLK_ID_LSCR0        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LSCR0),
	ISP_BLK_ID_LSCR1        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LSCR1),
	ISP_BLK_ID_AEHIST0      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AEHIST0),
	ISP_BLK_ID_AEHIST1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AEHIST1),
	ISP_BLK_ID_AWB0         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AWB0),
	ISP_BLK_ID_AWB1         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AWB1),
	ISP_BLK_ID_AF           = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AF),
	ISP_BLK_ID_GMS          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_GMS),
	ISP_BLK_ID_WBG0         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_WBG0),
	ISP_BLK_ID_WBG1         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_WBG1),
	ISP_BLK_ID_LMP0         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LMP0),
	ISP_BLK_ID_RGBMAP0      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_RGBMAP0),
	ISP_BLK_ID_PRERAW1_R1   = MAP_ISP_BLOCK_ID(ISP_BLK_BA_PRERAW1_R1),
	ISP_BLK_ID_CSIBDG1_R1   = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CSIBDG1_R1),
	ISP_BLK_ID_CROP0_R1     = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP0_R1),
	ISP_BLK_ID_CROP1_R1     = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP1_R1),
	ISP_BLK_ID_BLC0_R1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_BLC0_R1),
	ISP_BLK_ID_BLC1_R1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_BLC1_R1),
	ISP_BLK_ID_LSCR2_R1     = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LSCR2_R1),
	ISP_BLK_ID_LSCR3_R1     = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LSCR3_R1),
	ISP_BLK_ID_AEHIST0_R1   = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AEHIST0_R1),
	ISP_BLK_ID_AEHIST1_R1   = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AEHIST1_R1),
	ISP_BLK_ID_AWB0_R1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AWB0_R1),
	ISP_BLK_ID_AWB1_R1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AWB1_R1),
	ISP_BLK_ID_AF_R1        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AF_R1),
	ISP_BLK_ID_GMS_R1       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_GMS_R1),
	ISP_BLK_ID_WBG0_R1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_WBG0_R1),
	ISP_BLK_ID_WBG1_R1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_WBG1_R1),
	ISP_BLK_ID_LMP2_R1      = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LMP2_R1),
	ISP_BLK_ID_RGBMAP2_R1   = MAP_ISP_BLOCK_ID(ISP_BLK_BA_RGBMAP2_R1),
	ISP_BLK_ID_RAWTOP       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_RAWTOP),
	ISP_BLK_ID_BLC2         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_BLC2),
	ISP_BLK_ID_BLC3         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_BLC3),
	ISP_BLK_ID_DPC0         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_DPC0),
	ISP_BLK_ID_DPC1         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_DPC1),
	ISP_BLK_ID_WBG2         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_WBG2),
	ISP_BLK_ID_WBG3         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_WBG3),
	ISP_BLK_ID_LSCM0        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LSCM0),
	ISP_BLK_ID_LSCM1        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_LSCM1),
	ISP_BLK_ID_AWB4         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_AWB4),
	ISP_BLK_ID_HDRFUSION    = MAP_ISP_BLOCK_ID(ISP_BLK_BA_HDRFUSION),
	ISP_BLK_ID_HDRLTM       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_HDRLTM),
	ISP_BLK_ID_BNR          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_BNR),
	ISP_BLK_ID_CROP2        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP2),
	ISP_BLK_ID_CROP3        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP3),
	ISP_BLK_ID_MANR         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_MANR),
	ISP_BLK_ID_FPN0         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_FPN0),
	ISP_BLK_ID_FPN1         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_FPN1),
	ISP_BLK_ID_WBG4         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_WBG4),
	ISP_BLK_ID_RGBTOP       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_RGBTOP),
	ISP_BLK_ID_CFA          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CFA),
	ISP_BLK_ID_CCM          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CCM),
	ISP_BLK_ID_GAMMA        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_GAMMA),
	ISP_BLK_ID_HSV          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_HSV),
	ISP_BLK_ID_DHZ          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_DHZ),
	ISP_BLK_ID_R2Y4         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_R2Y4),
	ISP_BLK_ID_RGBDITHER    = MAP_ISP_BLOCK_ID(ISP_BLK_BA_RGBDITHER),
	ISP_BLK_ID_RGBEE        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_RGBEE),
	ISP_BLK_ID_YUVTOP       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_YUVTOP),
	ISP_BLK_ID_444422       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_444422),
	ISP_BLK_ID_UVDITHER     = ISP_BLK_ID_444422 + 1,
	//ISP_BLK_ID_3DNR         = MAP_ISP_BLOCK_ID(ISP_BLK_BA_3DNR),
	ISP_BLK_ID_YNR          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_YNR),
	ISP_BLK_ID_CNR          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CNR),
	ISP_BLK_ID_EE           = MAP_ISP_BLOCK_ID(ISP_BLK_BA_EE),
	ISP_BLK_ID_YCURVE       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_YCURVE),
	ISP_BLK_ID_CROP4        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP4),
	ISP_BLK_ID_CROP5        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP5),
	ISP_BLK_ID_CROP6        = MAP_ISP_BLOCK_ID(ISP_BLK_BA_CROP6),
	ISP_BLK_ID_DCI          = MAP_ISP_BLOCK_ID(ISP_BLK_BA_DCI),
	ISP_BLK_ID_ISPTOP       = MAP_ISP_BLOCK_ID(ISP_BLK_BA_ISPTOP),
	/* bottom group, block_id duplicate */
	ISP_BLK_ID_LMP1,
	ISP_BLK_ID_RGBMAP1,
	ISP_BLK_ID_LMP3_R1,
	ISP_BLK_ID_RGBMAP3_R1,
	ISP_BLK_ID_DMA0,//117
	ISP_BLK_ID_DMA1,
	ISP_BLK_ID_DMA2,
	ISP_BLK_ID_DMA3,//120
	ISP_BLK_ID_DMA4,
	ISP_BLK_ID_DMA5,
	ISP_BLK_ID_DMA6,
	ISP_BLK_ID_DMA7,
	ISP_BLK_ID_DMA8,//125
	ISP_BLK_ID_DMA9,
	ISP_BLK_ID_DMA10,
	ISP_BLK_ID_DMA11,
	ISP_BLK_ID_DMA12,
	ISP_BLK_ID_DMA13,//130
	ISP_BLK_ID_DMA14,
	ISP_BLK_ID_DMA15,
	ISP_BLK_ID_DMA16,
	ISP_BLK_ID_DMA17,
	ISP_BLK_ID_DMA18,//135
	ISP_BLK_ID_DMA19,
	ISP_BLK_ID_DMA20,
	ISP_BLK_ID_DMA21,
	ISP_BLK_ID_DMA22,
	ISP_BLK_ID_DMA23,//140
	ISP_BLK_ID_DMA24,
	ISP_BLK_ID_DMA25,
	ISP_BLK_ID_DMA26,
	ISP_BLK_ID_DMA27,
	ISP_BLK_ID_DMA28,//145
	ISP_BLK_ID_DMA29,
	ISP_BLK_ID_DMA30,
	ISP_BLK_ID_DMA31,
	ISP_BLK_ID_DMA32,
	ISP_BLK_ID_DMA33,//150
	ISP_BLK_ID_DMA34,
	ISP_BLK_ID_DMA35,
	ISP_BLK_ID_DMA36,
	ISP_BLK_ID_DMA37,
	ISP_BLK_ID_DMA38,//155
	ISP_BLK_ID_DMA39,
	ISP_BLK_ID_DMA40,
	ISP_BLK_ID_DMA41,
	ISP_BLK_ID_DMA42,
	ISP_BLK_ID_DMA43,//160
	ISP_BLK_ID_DMA44,
	ISP_BLK_ID_DMA45,
	ISP_BLK_ID_DMA46,
	ISP_BLK_ID_DMA47,
	ISP_BLK_ID_DMA48,
	ISP_BLK_ID_DMA49,
	ISP_BLK_ID_DMA50,
	ISP_BLK_ID_DMA51,
	ISP_BLK_ID_DMA52,
	ISP_BLK_ID_DMA53,
	ISP_BLK_ID_DMA54,
	ISP_BLK_ID_DMA55,
	ISP_BLK_ID_DMA56,
	ISP_BLK_ID_DMA57,
	ISP_BLK_ID_DMA58,
	ISP_BLK_ID_DMA59,
	ISP_BLK_ID_DMA60,
	ISP_BLK_ID_DMA61,
	ISP_BLK_ID_CMDQ1,
	ISP_BLK_ID_CMDQ2,
	ISP_BLK_ID_CMDQ3,
	ISP_BLK_ID_AF_GAMMA,
	ISP_BLK_ID_AF_GAMMA_R1,
	ISP_BLK_ID_MAX
};

/* ISP REG ADDR TRANSLATION POLICY
 * REG_ADDR = BLOCK_BA + REG_OFFSET
 * BLOCK_BA = [PHYS/VIRT_BA, DRAM_BA]
 * REG_OFFSET = calculate from STRUCT_MACRO
 * STRUCT_MACRO from coda parsed by py script
 *
 * PHYS/VIRT_BA = TOP_BA + BLOCK_OFFSET
 *
 * BLOCK_ID = (REG_ADDR - ISP_BASE) >> 12 (0~255)
 *
 * 0x0A000000 : ISP_BASE
 *      ^^    : ISP_BLK_ID_BITW, BLOCK_ID
 *        ^^^ : ISP_BLK_REGS_BITW
 *   ^^^^^    : BLOCK_BA
 *        ^^^ : REG_OFFSET
 */
//inline uint32_t map_isp_block_id(uint32_t reg_phy_addr)
//{
//	return MAP_ISP_BLOCK_ID(reg_phy_addr);
//}

#endif //_ISP_REG_H_
